package Juego.ElementoJuego.Mario;

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.awt.image.ImageProducer;
import java.util.Random;

import javax.swing.GrayFilter;
import javax.swing.ImageIcon;

import Juego.ElementoJuego.Enemigo.Enemigo;

/**
 * Clase que modela el estado del personaje al ser invensible
 * 
 * @author Mamani Natalia
 * @author Sanhueza Eduardo
 */
public class Invensible extends Intermitente{
	private Random ran;
	
	public Invensible(Caracteristica caracteristica) {
		this.caracteristica = caracteristica;
		ran = new Random();
	}
	
	public void colisionEnemigo(Personaje mario, Enemigo enemigoActual) {
		enemigoActual.colision(mario);
		mario.elimineEnemigo(enemigoActual);
	}

	protected ImageIcon efecto(ImageIcon imagen) {
		
		Image img = imagen.getImage();
				
		ImageFilter filter = new GrayFilter(true, ran.nextInt(50));
		
		ImageProducer producer = new FilteredImageSource(img.getSource(), filter);
		
		ImageIcon gris = new ImageIcon(Toolkit.getDefaultToolkit().createImage(producer));
		
		return gris;			
	}
	
	public void agarroEstrella(Personaje personaje) {
		personaje.modificarPuntaje(100);
	}
	
	public int tiempoEfecto(){
		return 100;
	}
}